/*
Copyright (c) [2019年5月1日] [吴超]
[MBT_Studio] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at:
		 http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.
*/
#pragma once

#include "物理/物理.h"

#include "../节点.h"
#include <物体/物体.h>
#include <面/面.h>




class API_EXPORT C_粒子节点 : public C_节点基类 {

public:
	C_粒子节点(S_设备环境& ctx);

	//S_物体*		m_粒子点;
	bool		f_update();

};

C_节点基类* f_node_创建粒子节点(S_设备环境& ctx, C_节点树* 子节点树);
C_节点基类* f_node_加载粒子节点(S_设备环境& ctx, FILE* f);
void		f_node_保存粒子节点(C_节点基类* n, FILE* f);






class API_EXPORT C_点粒子发射节点 : public C_节点基类 {
	
public:
	C_点粒子发射节点(S_设备环境& ctx);

	S_物体*		m_发射体物体;
	bool		f_update();

};






class API_EXPORT C_面粒子发射节点 : public C_节点基类 {

public:
	C_面粒子发射节点(S_设备环境& ctx);

	S_物体* m_发射体物体;
	bool		f_update();

};

C_节点基类* f_node_加载手动面粒子发射节点(S_设备环境& ctx, FILE* f);






class API_EXPORT C_粒子属性节点 : public C_节点基类 {

public:
	C_粒子属性节点(S_设备环境& ctx);
	~C_粒子属性节点();

	//S_Props		m_力类型;

	bool		f_update();

	void		f_读取(FILE* f);
	void		f_写入(FILE* f);
};

C_节点基类* f_node_创建粒子属性节点(S_设备环境& ctx, C_节点树* 子节点树);
C_节点基类* f_node_加载粒子属性节点(S_设备环境& ctx, FILE* f);
void		f_node_保存粒子属性节点(C_节点基类* n, FILE* f);



